Hyperledger Composer教程4-安装blockchain explorer | 程序小兵

Hyperledger Composer教程4-安装blockchain explorer

hyperledger explorer是一个简单但功能强大,易于使用,高度维护的开源浏览器,用于查看底层区块链网络上的活动。

目录结构

├── app                    fabric GRPC interface
├── db             the mysql script and help class
├── explorer_client        Web Ui
├── first-network   Basic fabric network setup
├── listener               websocket listener
├── metrics                metrics about tx count per minute and block count per minute
├── service                the service
├── socket         push real time data to front end
├── timer                  Timer to post information periodically  
└── utils                  Various utility scripts

要求

以下是安装和运行超级用户资源管理器所需的软件依赖关系

使用以下命令克隆blockchain explorer的最新版本

git clone https://github.com/hyperledger/blockchain-explorer.git
cd blockchain-explorer

数据库设置

在区块存储中,使用mysql存储数据库,因此,确保系统已经安装了mysql数据库server端及client端,数据库的脚本路径为db/fabricexplorer.sql,通过下面的命令建立数据库并插入表结构等:

mysql -u<username> -p < db/fabricexplorer.sql

其中<username>为具体的数据库用户名字,上面命令输入后回车,会要求输入具体的<username>用户的密码,输入密码回车,即可执行数据库脚本。

结构网络设置

在这个blockchain-explorer的版本库中,提供了示例代码first-network,如下:

1. cd first-network
2. ./bootstrap-1.0.2.sh --这将下载必要的二进制文件和hyperledger的镜像
3. mkdir -p ./channel-artifacts
4. ./byfn.sh -m generate -C mychannel
5. ./byfn.sh -m up -C mychannel

这将带来渠道名称为mychannel的组织网络,如果已经通过hyperledger-fabric创建了自己的网络的话,可采取fabric自己的网络。一旦设置了网络,必须修改config.json文件。

运行blockchain explorer浏览器

开启另一个终端,将路径切换到blockchain-explorer文件路径:

cd blockchain-explorer/
  1. 修改config.json的文件中的channel渠道、mysql数据库的用户名username和密码passwd
"channel ": "mychannel",
  "mysql":{
       "host": "127.0.0.1",
       "database": "fabricexplorer",
       "username": "root",
       "passwd": "root"
   }

其中channel的字段,在hyperledger-fabric中可以通过下面的路径找到当前bnd的路径:

  1. 在当期用户下,找到.composer文件夹:
--显示所有文件夹,包含.composer等隐藏文件
ls -la
  1. 进入该目录:
cd .composer

目录结构如下:

.
|-- cards
|   |-- PeerAdmin@fabric-network
|   |   `-- credentials
|   |-- PeerAdmin@hlfv1
|   |   `-- credentials
|   |-- admin@tutorial-network
|   |   `-- credentials
|   `-- admin@vehicle-lifecycle-network
|       `-- credentials
`-- client-data
    |-- PeerAdmin@fabric-network
    |-- PeerAdmin@hlfv1
    |-- admin@tutorial-network
    `-- admin@vehicle-lifecycle-network

在改文件下可以看到所有的业务网络的信息,进入cards路径,选择具体的某个业务网络文件,如admin@tutorial-network, 该文件包含以下内容:

.
|-- connection.json
|-- credentials
`-- metadata.json

其中connection.json包含了连接hyperledger的信息:

{
  "name": "hlfv1",
  "type": "hlfv1",
  "orderers": [
    {
      "url": "grpc://localhost:7050"
    }
  ],
  "ca": {
    "url": "http://localhost:7054",
    "name": "ca.org1.example.com"
  },
  "peers": [
    {
      "requestURL": "grpc://localhost:7051",
      "eventURL": "grpc://localhost:7053"
    }
  ],
  "channel": "composerchannel",
  "mspID": "Org1MSP",
  "timeout": 300
}

其中channel则为具体的通道值,拷贝composerchannel并填入config.json对应的channel值中,如下:

{
    "network-config": {
                "org1": {
                        "name": "peerOrg1",
                        "mspid": "Org1MSP",
                        "peer1": {
                                "requests": "grpc://127.0.0.1:7051",
                                "events": "grpc://127.0.0.1:7053",
                                "server-hostname": "dev-peer0.org1.example.com-tutorial-network-0.16.3"
                        },
                        "admin": {
                                "key": "/first-network/keystore",
                                "cert": "/first-network/signcerts"
                        }
                }
        },
   "host":"localhost",
   "port":"8081",
   "channel": "composerchannel",
   "GOPATH":"../artifacts",
   "keyValueStore":"/tmp/fabric-client-kvs",
   "eventWaitTime":"30000",     
   "mysql":{
      "host":"127.0.0.1",
      "port":"3306",
      "database":"fabricexplorer",
      "username":"root",
      "passwd":"root"
   }
}

如果连接的是非TLS的peer节点,则需要修改peer的URL协议(grpcs->grpc)和端口(9051->9050),然后删除tls_cacerts。根据这个值,应用程序决定是采用TLS或者非TLS录像访问hyperledger网络。

3. 安装npm的依赖

blockchain-explorer的文件下,输入以下命令安装npm 依赖包:

npm install

安装完毕,则启动区块链浏览器:

./start.sh

执行上面命令,会把日志输出在当期目录下的log.log文件里,可以通过tail -f log.log命令查看日志变化。

在浏览器上启用url访问:

http://localhost:8080

系统截图

这里是区块链浏览器的样子,特别高大上

image
image

监控进程

为了保证blockchain explorer浏览器的稳定运行,在blockchain-explorer的文件夹下,有个监控进程的脚本monitor.sh定时的扫描进程是否存在,若不存在,则重启服务:

while [ 1 ];do
    sleep 10
    process_num=$(ps -elf | grep -v grep | grep main.js | wc -l)
    if [ ${process_num} -eq 0 ];then
    echo "restart..."
        ./start.sh
    echo "start ok~"
    fi
done

搭配着区块链浏览器,更让人轻松的访问查看区块链上的区块信息。

2018-1-27

完。

文章目录
  1. 1. 目录结构
  2. 2. 要求
  3. 3. 安装
  4. 4. 数据库设置
  5. 5. 结构网络设置
  6. 6. 运行blockchain explorer浏览器
  7. 7. 3. 安装npm的依赖
  8. 8. 系统截图
  9. 9. 监控进程
,